2734
16720
مغلق. هذا السؤال لا يتوافق مع إرشادات Stack Overflow. انها لا تقبل الإجابات حاليا.
تريد تحسين هذا السؤال؟ قم بتحديث السؤال بحيث يكون موضوعًا لـ Stack Overflow.
مغلق منذ 4 سنوات.
تحسين هذا السؤال
أقوم بإنشاء تطبيق Shiny الذي يعالج ملفات نصية متعددة يختارها المستخدم.
الناتج عبارة عن إطار بيانات ضخم به ملايين الصفوف وعشرات الأعمدة.
أنا مهتم الآن بالسماح للمستخدم بتصفية الصفوف بشكل تفاعلي وتحديد الأعمدة وتلخيص الأعمدة (عن طريق الاختيار من قائمة الوظائف مثل المتوسط ​​، sd ، max ، min ، sum ، إلخ ...). ستكون النتيجة إطار بيانات أصغر يلخص البيانات لكل تحديدات المستخدم - أحتاج أساسًا إلى إنشاء واجهة مستخدم رسومية تنفذ الوظائف الأساسية لمكتبة dplyr.
بشكل عام ، أعرف كيفية القيام بذلك عن طريق إنشاء مجموعة من عناصر واجهة المستخدم الرسومية يدويًا وإدخالها في وظيفة الخادم بعدد من أوامر dplyr. نظرًا لأن هذه وظيفة قياسية جدًا (واجهة المستخدم الرسومية التي تقوم بتصفية وتلخيص إطار البيانات) ، قبل أن أبدأ في بنائه من البداية ، أتساءل عما إذا كان هناك أي شيء "خارج الرف" يمكنني استخدامه إما كما هو أو كنقطة انطلاق . 
أعلم أنك قلت إن rpivotTable لم يكن ما تبحث عنه تمامًا ، لكنني أعتقد أنه يمكن تهيئته للقيام ببعض الرفع الثقيل ،
إليك مثال (باستخدام rpivotTable للمعالجة ، DT لإظهار data.frame ، rvest لتحليل HTML الداخلي من DOM ، قد يكون هناك تنسيق بيانات أفضل لتمرير كائن الجدول من جانب العميل ، ولكن هذا دليل على المفهوم ):
ui.R
مكتبة (لامعة)
مكتبة (DT)
مكتبة (rpivotTable)
صفحة كاملة <- fluidPage (
DT :: dataTableOutput ('aSummaryTable') ،
rpivotTableOutput ("النتائج")
)
صفحة كاملة
server.R:
مكتبة (لامعة)
مكتبة (rpivotTable)
مكتبة (DT)
مكتبة (rvest)
الوظيفة (الإدخال ، الإخراج ، الدورة) {
# عمل بعض البيانات النموذجية
qbdata <- رد الفعل ({
expand.grid (LETTERS، 1: 3)
})
# تنظيف html وتخزينها على أنها تفاعلية
Summarydf <- eventReactive (input $ myData، {
إدخال $ myData٪>٪
read_html٪>٪
html_table (fill = TRUE)٪>٪
# تبين وجود جدولين في rpivotTable ، نريد الثاني
. [[2]]
})
# عرض df كـ DT :: datatable
الإخراج $ aSummaryTable <- DT :: renderDataTable ({
جدول البيانات (abstractdf () ، أسماء rownames = FALSE)
})
# عندما يتم تحديث التكوين ، أعد الاتصال بمحتوى الجدول
الإخراج $ RESULTS <- renderRpivotTable ({
rpivotTable (
qbdata () ،
onRefresh =
htmlwidgets :: JS ("function (config) {
Shiny.onInputChange ('myData'، document.getElementById ('RESULTS'). innerHTML) ؛
} ")
)
})
}
|
ليس الجواب الذي تبحث عنه؟ تصفح الأسئلة الأخرى الموسومة بـ r dplyr shiny أو اطرح سؤالك الخاص.